/*
 *  cuentaCorrienteNro y cajaDeAhorroNro fijarse si los hacemos nros o String
 */
package com.mybank.domain;

import java.sql.*;
import java.util.Properties;

public class ClienteBean {

    private String id;
    private String apellido;
    private String nombre;
    private String documento;
    private CajaDeAhorro cajaDeAhorro; // un cliente puede tener hasta una caja de
    // ahorro
    private CuentaCorriente cuentaCorriente;

    public ClienteBean(String apellido, String nombre, String documento) {
        this.apellido = apellido;
        this.nombre = nombre;
        this.documento = documento;
    }

    public String toString() {
        return "ID: " + id + ", Apellido: " + apellido + ", Nombre: " + nombre
                + ", Documento: " + documento + ", Caja de Ahorro: "
                + cajaDeAhorro + ", Cuenta Corriente: " + cuentaCorriente
                + "\n ";
    }

    ;

    public ClienteBean() {
    }

    public ClienteBean(String id) {
        this.id = id;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getApellido() {
        return apellido;
    }

    public void setApellido(String apellido) {
        this.apellido = apellido;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public String getDocumento() {
        return documento;
    }

    public void setDocumento(String documento) {
        this.documento = documento;
    }

    public CajaDeAhorro getCajaDeAhorro() {
        return cajaDeAhorro;
    }

    public void setCajaDeAhorro(CajaDeAhorro cajaDeAhorro) {
        this.cajaDeAhorro = cajaDeAhorro;
    }

    public CuentaCorriente getCuentaCorriente() {
        return cuentaCorriente;
    }

    public void setCuentaCorriente(CuentaCorriente cuentaCorriente) {
        this.cuentaCorriente = cuentaCorriente;
    }

    public void cargarCliente(int idCliente) {
        String driverDb;
        String urlDb;
        String usuarioDb;
        String passwordDb;
        // leo las propiedades ingresadas en Controller
        Properties p = System.getProperties();

        driverDb = p.getProperty("driverDb");
        urlDb = p.getProperty("urlDb");
        usuarioDb = p.getProperty("usuarioDb");
        passwordDb = p.getProperty("passwordDb");

        this.setId(Integer.toString(idCliente));
        try {
            Class.forName(driverDb);
        } catch (ClassNotFoundException e) {
            System.out.println(e.toString());
        }

        String sql = "SELECT * FROM CLIENTES WHERE ID = '" + idCliente + "'";

        try {
            Connection con = DriverManager.getConnection(urlDb, usuarioDb, passwordDb);

            Statement s = con.createStatement();
            ResultSet rs = s.executeQuery(sql);


            while (rs.next()) {
                this.setApellido(rs.getString(2));
                this.setNombre(rs.getString(3));
                this.setDocumento(rs.getString(4));
                String nroCajaDeAhorro = rs.getString(5);
                if (nroCajaDeAhorro != null) {
                    cajaDeAhorro = new CajaDeAhorro();
                    cajaDeAhorro.cargarCajaAhorro(nroCajaDeAhorro);
                }
                String nroCuentaCorriente = rs.getString(6);
                if (nroCajaDeAhorro != null) {
                    cuentaCorriente = new CuentaCorriente();
                    cuentaCorriente.cargarCuentaCorriente(nroCuentaCorriente);
                }
            }
            rs.close();
            s.close();
            con.close();
        } catch (SQLException e) {
        } catch (Exception e) {
        }
    }
}
